#include "ClaveAlumno.h"
#include "Alumno.h"
#include "../funciones.h"

//prueba
#include <iostream>

namespace Toolkit
{

ClaveAlumno::ClaveAlumno(const int &padron,
        const TipoSerializacion tSerializacion)
{
    this->padron = padron;
    this->tSerializacion = tSerializacion;
}

ClaveAlumno::~ClaveAlumno()
{
}

void ClaveAlumno::serializar(stringstream &stream) const
{
    serializacionDigito(stream, tSerializacion, padron);
}

void ClaveAlumno::hidratar(stringstream &stream)
{
    hidratacionDigito(stream, tSerializacion, padron);
}

bool ClaveAlumno::operator ==(const Clave& otra) const
{
    return padron == ((ClaveAlumno&) otra).getPadron();
}

bool ClaveAlumno::operator ==(const Dato& dato) const
{
    return padron == ((Alumno&) dato).getPadron();
}

bool ClaveAlumno::operator <(const Clave &otra) const
{
    return padron < ((ClaveAlumno&) otra).getPadron();
}

bool ClaveAlumno::operator <(const Dato &dato) const
{
    return padron < ((Alumno&) dato).getPadron();
}

Clave* ClaveAlumno::clonar() const
{
    return new ClaveAlumno(padron, tSerializacion);
}

int ClaveAlumno::getPadron() const
{
    return padron;
}

void ClaveAlumno::setPadron(const int &padron)
{
    this->padron = padron;
}

Clave* ClaveAlumno::crearDesdeDato(const Dato &dato) const
{
    return new ClaveAlumno(((Alumno&) dato).getPadron(), tSerializacion);
}

}
